// TODO: Implement module
const fs = require('fs')
const path = require('path')
const marked = require('marked')
const puppeteer = require('puppeteer')
const { cosmiconfigSync } = require('cosmiconfig')
/**
 * 将指定路径的 md 文件转换为 png
 * @param {string} input 输入文件的路径、可以为相对也可为绝对
 * @param output 输出文件名
 * @param width 输出图片的宽度
 */
module.exports = async (input, { output, width = 800 }) => {
  if (typeof input !== 'string') {
    throw new TypeError(`Expected a string, got ${typeof input}`)
  }

  //读取input文件对应的内容
  // process.cwd() 命令行运行时 命令行当前所在的目录的位置
  const filename = path.resolve(input) // 默认会有process.cwd()与传入参数拼接
  if (!fs.existsSync(filename)) {
    throw new Error('文件路径不存在')
  }
  const stat = fs.statSync(filename)
  if (stat.isDirectory()) {
    throw new Error('输入路径为文件夹不是一个文件')
  }
  const content = fs.readFileSync(input, 'utf-8')

  //使用marked解析转换为html

  const farmat = marked(content)
  const explorer = cosmiconfigSync('mark2img')
  const { config = {} } = explorer.search(process.cwd()) || {}
  console.log(config)
  const html = config.template``
  // console.log(html)
  //html转换为png

  // const browser = await puppeteer.launch()
  // const page = await browser.newPage()
  // // await page.goto('https://www.baidu.com')
  // await page.setViewport({ width, height: 100 })
  // await page.setContent(html, {})
  // await page.screenshot({ path: output + '.png', fullPage: true })
  // await browser.close()
  console.log('done')
  // options = Object.assign({}, options)
  //
  // return `${input}@${options.host || 'zce.me'}`
}
